<?php
	
	$db = new PDO('mysql:host=localhost;dbname=mobilegame', 'root', '');
	
	//liste categories
	$requete = "SELECT id, nom_categorie, description FROM forum_categories";
	$listeCategorie = $db->prepare($requete);
	$listeCategorie->execute();
	$dataCategorie = $listeCategorie-> fetchAll();
	
	/*Fonctions pour les messages et sujets*/
	addSujet($db);
	addMessage($db);
	
	function connectForum($connexion) {
		
	}
	
	function getSujets($connexion) {
					
		$requete = $connexion->prepare("SELECT id, auteur, titre, date_derniere_reponse, correspondance_categorie 
					FROM forum_sujets 
					ORDER BY date_derniere_reponse 
					DESC");
		$requete->execute();
		$data = $requete-> fetch();
		
		$nb_sujets = count($data);
		
		if ($nb_sujets == 1) { 
		   echo 'Aucun sujet';  
		}  
		else {
		/*Les categories*/
			$requete = "SELECT id, nom_categorie, description FROM forum_categories";
			$listeCategorie = $connexion->prepare($requete);
			$listeCategorie->execute();
			$dataCategorie = $listeCategorie-> fetchAll();
			
			foreach ($dataCategorie as $key => $value) {
				
			/*les messages par categorie*/
				$requete_message = "SELECT id, auteur, titre, date_derniere_reponse, correspondance_categorie
									FROM forum_sujets WHERE correspondance_categorie = :categorie 
									GROUP BY id";
				$listeSujets = $connexion->prepare($requete_message);
				$listeSujets->bindValue(':categorie', $dataCategorie[$key]["id"], PDO::PARAM_STR);
				$listeSujets->execute();
				$dataSujets = $listeSujets->fetchAll();
			
			/*Comptage des sujets dans chaque categorie*/
				$requete_nbr_sujet = "SELECT COUNT(*) as nombre_sujet 
								FROM forum_sujets WHERE correspondance_categorie = :categorie";
				$listeNbrSujet = $connexion->prepare($requete_nbr_sujet);
				$listeNbrSujet->bindValue(':categorie', $dataCategorie[$key]["id"], PDO::PARAM_STR);
				$listeNbrSujet->execute();
				$nombreSujet = $listeNbrSujet->fetchAll();
				$nombre_de_sujet = $nombreSujet[0]["nombre_sujet"];
				
			
				echo'
			   <table>
					<thead>
						<tr>
							<th colspan="2" class="titreCol">
								<a href = "categorie.php?categorie_id='.$value["id"].'" >
									'.$value["nom_categorie"].'
								</a><br/>
								<span class="description">'.$value["description"].'</span>
							</th>
							<th class="nombre_message">Nombres de sujets : '.$nombre_de_sujet.'</th>
							<th class="last_message">Dernier message posté</th>
						</tr>
					</thead>
					<tbody> ';
						foreach ($dataSujets as $key => $value) {
							echo '
							<tr>
								<td class="icone">icone</td>
								<td class="titre"><a href="sujet.php?sujet_id='.$value["id"].'" >
									'.$value["titre"].'
								</a></td>
								<td class="nombre_message">ouvert</td>
								<td class="last_message">'.$value["date_derniere_reponse"].'</td>
							</tr> ';
						}
						echo'
					</tbody>
				</table>
				';
			}
		}
	}
	
	function getOneSujet($connexion, $id_sujet) {
		/*recup du titre*/
		$sql_titre = "SELECT * FROM forum_sujets WHERE id = :idsujet";
		$resultat = $connexion->prepare($sql_titre);
		$resultat->bindValue(':idsujet', $id_sujet, PDO::PARAM_STR);
		$resultat->execute();
		$titreSujet = $resultat-> fetch();
		
		/*Les messages PAR SUJET*/
		$requete = "SELECT id, auteur, message, date_reponse, correspondance_sujet, correspondance_categorie 
					FROM forum_reponses 
					WHERE correspondance_sujet = :idsujet
					ORDER BY date_reponse";
		$result = $connexion->prepare($requete);
		$result->bindValue(':idsujet', $id_sujet, PDO::PARAM_STR);
		$result->execute();
		$messagesParSujet = $result-> fetchAll();
		
		if ($titreSujet) {
			echo '
				<a href="categorie.php?categorie_id='.$titreSujet["correspondance_categorie"].'">Retour à la liste des sujets de la catégorie.</a>
				<h3>'.$titreSujet["titre"].'</h3>
			';
		}
		
		if(!empty($messagesParSujet)){
			foreach( $messagesParSujet as $key => $value ) {
				echo '
				<div class="message">
					
					<div class="auteur">
						<ul>
							<li><a href="#">'.$value["auteur"].'</a></li>
							<li>Posté le '.$value["date_reponse"].'</li>
						</ul>
					</div>
					<div class="message_area">
						<p>'.$value["message"].'</p>
					</div>
				</div>
				';
			}
		} else {
			echo 'Le sujet n\'existe pas ou plus.';
		}
	}
	
	function addSujet($connexion) {		
		
		if ( isset($_POST['validSujet']) && !empty($_POST['validSujet'])) {
			
			$categorie = $_POST['categorie'];
			$auteur = $_POST['auteur'];
			$sujet = $_POST['sujet'];
			$message = $_POST['message'];
			
			/*SUJET*/
			$insert = "INSERT INTO forum_sujets(id, auteur, titre, date_derniere_reponse, correspondance_categorie) 
						VALUES ('', :auteur , :titre, NOW(), :categorie)";
			$requete = $connexion->prepare($insert);
			$requete->bindValue(':auteur', $auteur, PDO::PARAM_STR);
			$requete->bindValue(':titre', $sujet, PDO::PARAM_STR);
			$requete->bindValue(':categorie', $categorie, PDO::PARAM_INT);
			$requete-> execute();
			
			
			/*PREMIER MESSAGE DU SUJET*/
			$select_id = $connexion->query('SELECT LAST_INSERT_ID() as last FROM forum_sujets');
			$id_sujet = $select_id->fetch();
			$last = (int)($id_sujet['last']);
			
			$insert = "INSERT INTO forum_reponses(id, auteur, message, date_reponse, correspondance_sujet) 
						VALUES ('', :auteur, :message, NOW(),:id_sujet)";
			$requete_message = $connexion->prepare($insert);
			$requete_message->bindValue(':auteur', $auteur, PDO::PARAM_STR);
			$requete_message->bindValue(':message', $message, PDO::PARAM_STR);
			$requete_message->bindValue(':id_sujet', $last, PDO::PARAM_INT);
			$requete_message-> execute();
			
			header('Location: ../ajouter_sujet.php');
		}		
	}
	
	function addMessage($connexion){
		
		if ( isset($_POST['validReponse']) && !empty($_POST['validReponse'])) {
			
			$sujet = (int)($_POST['sujet']);
			$auteur = $_POST['auteur'];
			$message = $_POST['message'];
			
			/*insert dans la base des reponses*/
			$insert = "INSERT INTO forum_reponses(id, auteur, message, date_reponse, correspondance_sujet) 
						VALUES ('', :auteur, :message, NOW(),:id_sujet)";
			$requete_message = $connexion->prepare($insert);
			$requete_message->bindValue(':auteur', $auteur, PDO::PARAM_STR);
			$requete_message->bindValue(':message', $message, PDO::PARAM_STR);
			$requete_message->bindValue(':id_sujet', $sujet, PDO::PARAM_INT);
			$requete_message-> execute();
			
			/*mise a jour date dans forum_sujet*/
			$maj = "UPDATE forum_sujets SET date_derniere_reponse = NOW() WHERE id = :id_sujet";
			$requete_maj = $connexion->prepare($maj);
			$requete_maj->bindValue(':id_sujet', $sujet, PDO::PARAM_INT);
			$requete_maj-> execute();
			
			header('Location: ../sujet.php?sujet_id='.$sujet);
		}	
	}

	function getListSujet($connexion, $id_current_categorie){
		
		$sql_list = "
			SELECT id, auteur, titre, date_derniere_reponse, correspondance_categorie 
			FROM forum_sujets 
			WHERE correspondance_categorie = :idcat";
		$resultat = $connexion->prepare($sql_list);
		$resultat->bindValue(':idcat', $id_current_categorie, PDO::PARAM_INT);
		$resultat->execute();
		$listSujet = $resultat-> fetchAll();
		
		
		echo '
		<table>
			<thead>
				<tr>
					<th>Sujet</th>
					<th>Infos</th>
				</tr>
			</thead>
			<tbody> ';
					
		foreach($listSujet as $key => $value ) {
			/*les infos*/
			$auteur = $value["auteur"];
			$titre = $value["titre"];
			$date = $value["date_derniere_reponse"];
			echo '<tr>
					<td><a href="sujet.php?sujet_id='.$value["id"].'">'.$value["titre"].'</a></td>
					<td>
						<ul>
							<li><a href="#">'.$value["auteur"].'</a></li>
							<li>Posté le '.$value["date_derniere_reponse"].'</li>
						</ul>
					</td>
				</tr>';
				
		}
		
		echo '
				</tbody>
			</table>
			';
	}
	
	function getNameCat($connexion, $id_current_categorie) { 
		
		$sql_name_cat = "SELECT * FROM forum_categories WHERE id = :id";
		$requete = $connexion->prepare($sql_name_cat);
		$requete->bindValue(':id', $id_current_categorie, PDO::PARAM_INT);
		$requete->execute();
		$name_cat = $requete-> fetch();
		
		echo '<h2>'.$name_cat["nom_categorie"].'</h2>';
	}
?>